In recent years, network technologies for searching for a device that provides a predetermined service on a network have been developed. One such technology is the “UPnP” (Universal Plug and Play) provided by Microsoft Corp. of the Unite States. In UPnP, “service”, “device” and “control point” are predefined. A “service” is a logical unit that provides a predetermined service, a “device” is a logical unit that has one or more services, and a “control point” is a logical unit that controls one or more services.
UPnP is composed of internet standard technologies (protocols) such as IP, TCP, UDP and HTTP., and provides for an auto step, from connection to network to when devices on the network detect and recognize each other, a step of actually controlling the devices and a step of issuing an event (see Universal Plug and Play device Architecture Version 1.0, Jun. 8, 2000 10:41 AM). Below, a description is given of UPnP addressing and discovery steps having relation with the present invention.
Addressing refers to the step of acquiring a network address, in other words an IP address, and is presumed to be carried out prior to subscribing to a network and interacting with other devices. UPnP defines two means for setting the IP address.
The first means involves acquiring the IP address from a DHCP (Dynamic Host Configuration Protocol) server (see RFC 2131 Dynamic Host Configuration Protocol. IETF request for comments). A brief description of DHCP is given below.
A UPnP device necessarily has a DHCP client capability, so that, when the device subscribes to a network, the first thing it does is check for the existence of a DHCP server (DHCP DISCOVER). Then, if a DHCP server exists inside the network, the UPnP device receives a response from the DHCP server (DHCP OFFER), makes an IP address request (DHCP REQUEST), and can acquire and use, within a certain period of time, a unique IP address inside the same network that the DHCP server generates (DHCP ACK). That certain period of time is a lease period of time, and where it is desired to continue to use the IP address, the device must submit a new request (DHCP REQUEST) to the DHCP server before the expiration of the lease time and receive new permission. Moreover, when the device separates from the network, where the IP address is no longer required, that IP address must be returned to the DHCP server.
The second means involves setting an IP address using AutoIP (see Automatically Choosing an IP Address in an Ad-Hoc IPv4 Network. IETF draft). A brief description of AutoIP is given below.
AutoIP refers to the ability of a device to itself generate and set a given IP address. The usable IP address range is limited to from 169.254.1.0 to 169.254.254.255, and where the device discovers that no DHCP server exists on the network, that device generates an arbitrary IP address within the foregoing address range, and sets the IP address after using ARP (Address Resolution Protocol) to confirm that there is no other device using the same IP address. Accordingly, addressing can be carried out even in networks in which a DHCP server does not exist.
In UPnP, in order to prevent an increase in network traffic due to ARP, of these two means the DHCP server allocation method is preferred. As a result, a UPnP device set by AutoIP must periodically check if a DHCP server exists on the network (DHCP DISCOVER). In UPnP, it is recommended that the frequency cycle of such check be at intervals of 5 minutes.
After setting the IP address in the addressing step, the UPnP device carries out discovery. Discovery is a step of automatically mutually recognizing all the other devices on the network. In discovery, broadly speaking, there are two messages that are defined. One message is an ALIVE message, announcing that the device is joining the network. The other message is a BYEBYE message, announcing that the device is leaving the network. By multicast transmission of these messages, each device on the network can mutually recognize the existence of all the other devices on the network. In addition, these two messages have a Notification type defined by GENA (General Event Notification Architecture) protocol, by which the devices to be notified can be set to one of four types: Route device, UUID, device type and service type.
The UPnP device sets the IP address by the methods described in the foregoing addressing step. However, in a case where a DHCP server subscribes to a network consisting of a plurality of UPnP devices using AutoIP, a problem like that described below arises. FIG. 9 shows a sequence pertaining to the addressing step that is the problem, and a description thereof is provided according thereto.
The UPnP network is composed of MediaServer and MediaRenderer, in a state in which the devices have set IP addresses using AutoIP. It should be noted that the IP addresses are, respectively, 169.254.1.1 for MediaServer and 169.254.1.2 for MediaRenderer. In this initial state, it is assumed that there is no DHCP server present.
In a step 901, the MediaServer streams moving picture data, and in a step 902 the MediaRenderer receives the streamed data. In a step 903, the MediaRenderer periodically transmits a DHCP DISCOVER message and searches for a DHCP server. However, because the timing of the message transmission indicated in step 903 indicates that a DHCP server does not exist on the network, the MediaRenderer therefore does not receive a DHCP OFFER message (step 904). Next, in a step 905, by user operation, for example, a DHCP server subscribes to the network. At this time the DHCP server allocates to itself the IP address 192.168.0.1.
Next, in a step 906, the MediaServer periodically transmits the DHCP DISCOVER message and searches for a DHCP server. This time, a DHCP server does exist on the network. The DHCP server receives the DHCP DISCOVER message, and in a step 907 transmits a DHCP OFFER message describing an IP address it can provide. Here, the IP address that can be provided is 192.168.0.2. Next, in a step 908, the MediaServer acknowledges that a DHCP server exists within the network and transmits a DHCP REQUEST requesting permission to use the IP address 192.168.0.2. In a step 909, the DHCP server transmits a DHCP ACK message, permitting the MediaServer to use the IP address 192.168.0.2. Accordingly, in a step 910, the MediaServer switches from the IP address set by AutoIP to the IP address allocated by the DHCP server. However, the MediaServer and the MediaRenderer now have different network addresses, and in a step 911 and a step 912, streaming between the MediaServer and the MediaRenderer is interrupted.